using System;
using System.Collections.Generic;
using System.Text;
using Hoshimi._Map_;

namespace Hoshimi
{
    public abstract class Component
	{

        public static MyMain			myPlayer			{ get { return myMapManager.myPlayer; } }
        public static BotManager		myBotManager		{ get { return BotManager.Instance(); } }
        public static MapManager		myMapManager		{ get { return MapManager.getInstance(); } }
        public static PathManager		myPathManager		{ get { return PathManager.getInstance(); } }
		public static StrategyManager	myStrategyManager	{ get { return StrategyManager.Instance(); } }
		public static AIPathManager		myAIPathManager		{ get { return AIPathManager.Instance(); } }


		// Inhibate the default constructor
		protected Component() { }

		/// <summary>
		/// Add a unit
		/// </summary>
		/// <param name="unit"></param>
		/// <returns></returns>
		public virtual bool Add( Unit unit ) { return false; }

		/// <summary>
		/// Remove a unit and add it to the resource pool
		/// </summary>
		/// <param name="unit"></param>
		/// <returns></returns>
		public virtual bool Remove( Unit unit ) { return false; }
	}
}
